package com.zz.springboot.mapper;

import com.zz.springboot.dto.DataDTO;
import com.zz.springboot.model.ExcludeInfo;
import com.zz.springboot.model.XiangGang;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;

import java.util.List;

@org.apache.ibatis.annotations.Mapper
public interface XiangGangMapper extends Mapper<XiangGang> {

    /**
     * 查询所有的号码
     * @return
     */
    public List<Integer> selectAllNums();

    /**
     * 查询所有数据
     * @return
     */
    public List<DataDTO> selectAllData();

    /**
     * 新增数据
     * @desc 适合【excel表格映射实体类】和【数据表实体类】为不同实体类情况，但是两个实体类中的属性名要完全一致
     * @param dataDTOList
     * @return
     */
    public Integer insertData(List<DataDTO> dataDTOList);

    /**
     * 新增批量数据
     * @desc 适合【excel表格映射实体类】和【数据表实体类】为同一实体类情况
     * @param dataList
     * @return
     */
    public Integer insertXiangGangData(List<XiangGang> dataList);

    /**
     * 更新批量数据
     * @param dataDTOList
     * @return
     */
    public void updateBatchData(List<DataDTO> dataDTOList);

    /**
     * 更新单一数据
     * @param dataDTO
     * @return
     */
    public Integer updateSingleData(DataDTO dataDTO);

    /**
     * 查询需要报出的数据
     * @return
     */
    public List<ExcludeInfo> getAllExcludeInfo();

    /**
     * 清空表数据
     */
    public void clearXiangGangTable();

    /**
     * 查询单双数据
     * @param category
     * @return
     */
    public List<DataDTO> selectOddsOrEvensData(@Param("category") String category);

    /**
     * 查询大小数据
     * @param category
     * @return
     */
    public List<DataDTO> selectBigLittleData(@Param("category") String category);

    /**
     * 查询波色数据
     * @param category
     * @return
     */
    public List<DataDTO> selectColorData(@Param("category") String category);

    /**
     * 查询生肖数据
     * @param category
     * @return
     */
    public List<DataDTO> selectAnimalsData(@Param("category") String category);

    /**
     * 查询大小数据
     * @param category
     * @return
     */
    public List<DataDTO> selectTailData(@Param("category") String category);
}